home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / telecomm / fnordadl / fn132src.zoo / ref-man / ruggie.tex < prev    next >
Encoding:
Text File  |  1991-09-02  |  27.3 KB  |  620 lines

  1. @comment Tell Emacs to use -*-texinfo-*- mode
  2. @comment $Id: ruggie.tex,v 2.2 91/09/01 23:04:40 royce Exp $
  3.  
  4. @node Anti-Ruggie Measures, Shells vs. the Desktop, Doors, Top
  5. @chapter Anti-Ruggie Measures
  6. @cindex Anti-ruggie measures
  7.  
  8. @cindex Ruggie
  9. @dfn{Ruggie} is short for ``rug-rat''; it's a somewhat mutated term
  10. which now refers to any brat, twit, twerp, loser, wanker, nud, idiot, len,
  11. moron, or generally, any walking waste of protoplasm.  These types of
  12. people (often, though by no means exclusively, kids who've
  13. just been given their first modem for Christmas) may suddenly spring up
  14. and begin to plague your @sc{bbs}.  They may do any one of a number of things,
  15. from logging in and asking stupid questions, to putting drivel in the
  16. discussion rooms, to strewing megabytes of profanity all over your board.
  17. If they do the former, then you may simply want to take them aside, so to
  18. speak, and answer their questions.  If they do something like the latter,
  19. then read on.
  20.  
  21. @node Philosophy, Secret Weapons, Anti-Ruggie Measures, Anti-Ruggie Measures
  22. @section Philosophy
  23.  
  24. ``But first, a brief philosophical interlude.''  The developers
  25. of Fnordadel have been running conversation-only @sc{bbs}es for a
  26. number of years (the Round Table, Royce's board, went up in
  27. August of 1984, and Secret Service, Adrian's board, has been around
  28. since March of 1986).  In all that time, a philosophy of ``open''
  29. Sysoping has prevailed.  That is, we've always disliked the
  30. validation style of @sc{bbs}es---the kind where you have to leave
  31. ten pages of personal information before the Sysop will grant
  32. you access to his system.  We prefer to run systems where
  33. anyone can create a new account at any time, without Sysoply
  34. intervention, and then dive into most of what goes on with the system.
  35.  
  36. The problem with this, of course, is that undesirables
  37. tend to slip in.  Any ruggie can call in and leave his drivel
  38. or profanity at any time, and there ain't much that the Sysop
  39. can do about it.  About the most he can do, on a standard
  40. Citadel, is delete the offending messages as soon as he sees
  41. them, hopefully before they got sent anywhere if the rooms affected
  42. are networked, and pray the ruggie doesn't call back.  Or he can turn
  43. his system into a ``closed'', validation-style system, which may
  44. not be an attractive option.  It certainly isn't to us.
  45.  
  46. Here in Edmonton, we've had a pretty determined gang
  47. of ruggies plaguing the boards for a couple of years, and it
  48. was primarily these twits who prompted the development of
  49. Fnordadel's anti-ruggie features which aren't found on other
  50. Citadels.
  51.  
  52. @emph{Please note:} no security measures
  53. ever devised can stop a determined incursion, so we advise you
  54. to be pretty low-key about what security measures you may have in
  55. place, to avoid tempting people to break them.
  56.  
  57. @node Secret Weapons, Ruggie Hints and Notes, Philosophy, Anti-Ruggie Measures
  58. @section The Secret Weapons
  59.  
  60. Here, then, are the tools at your disposal.  Use any
  61. combination that works for you without causing your regular users
  62. undue discomfort.
  63.  
  64. @node Paranoid mode, Messages per room per call, Secret Weapons, Secret Weapons
  65. @subsection Paranoid mode
  66. @cindex Paranoid mode
  67. @cindex Getname mode
  68.  
  69. Standard Fnordadel requires that users login
  70. using their password only; if people are intelligent in
  71. choosing their passwords, this works fine and is quicker
  72. than having to type in one's user name as well.  Unfortunately,
  73. many people are not the least bit intelligent when it
  74. comes to password choosing (or anything else, for that
  75. matter), so it leaves a resourceful ruggie with some
  76. golden opportunities to hack someone's account and cause
  77. chaos.
  78.  
  79. If you define the variable @code{#getname} to have the value
  80. @vindex getname
  81. @samp{1} in your @file{ctdlcnfg.sys} (referred to in the literature as
  82. ``paranoid mode'', for hysterical@dots{} err@dots{} historical reasons),
  83. Fnordadel will ask for both a name and a
  84. password when logging users in.  This means that a ruggie
  85. has to guess not only a user's password, but to which user
  86. the password belongs.  This is pretty tough.
  87.  
  88. @node Messages per room per call, Mail messages per call, Paranoid mode, Secret Weapons
  89. @subsection Messages per room per call
  90. @cindex Limits, messages per room per call
  91.  
  92. A favourite ruggie trick is to use an automated
  93. macro to enter one message (frequently something short but
  94. obscene) into one or more rooms, over and over and over
  95. again; the goal being to scroll all the real messages out
  96. of your message base.
  97.  
  98. To combat this, Fnordadel allows you to define
  99. the maximum number of messages which any given user can
  100. enter in any given room during any one login session.
  101. (The @code{Mail>} room is an exception; see the next section.)
  102. Simply define the @file{ctdlcnfg.sys} variable @code{#msgenter} to be
  103. @vindex msgenter
  104. your desired maximum.  For most systems, a number like @samp{4}
  105. or @samp{5} is pretty good; it allows the legitimate users
  106. plenty of leeway for verbosity, while helping to contain
  107. the damage done by a vandal.  Deleting 4 or 5 messages
  108. from a few rooms is much better than deleting hundreds,
  109. or having to nuke your message base because it's full of
  110. ``Sysop Sucks Eggs'' messages.
  111.  
  112. Setting this parameter to @samp{0} means there is no
  113. limit on the number of messages enterable by anybody.
  114. Even if the value is non-zero, all Aides, Co-Sysops and the Sysop are
  115. exempt from the limit.  Hopefully you won't all run wild.
  116.  
  117. @node Mail messages per call, Calls per day, Messages per room per call, Secret Weapons
  118. @subsection Mail messages per call
  119. @cindex Limits, mail messages per call
  120.  
  121. The parameter @code{#mailenter} in @file{ctdlcnfg.sys}
  122. @vindex mailenter
  123. works exactly like its counterpart @code{msgenter} described above.
  124. It controls only the @code{Mail>} room, however, and thus allows you
  125. to independently alter users' use of private mail.  Not only
  126. can this be used to stop vandals from flooding your decent
  127. users with junk mail, it can be used to control non-ruggies
  128. who may be a bit too enthusiastically posting private messages.
  129.  
  130. Again, setting this parameter to @samp{0} means there is no
  131. limit on the number of messages enterable by anybody.  Aides, Co-Sysops
  132. and the Sysop are exempt from the limit in any case.
  133.  
  134. Another parameter to consider in this area is @code{allmail}.
  135. If set to @samp{1}, the parameter allows all users full access to
  136. entering messages in the @code{Mail>} room.  If set to @samp{0}, however,
  137. users are not able to enter mail to anybody except @samp{Sysop},
  138. unless you manually give them mail privileges (@pxref{User Status Commands}).
  139. Naturally, Aides, Co-Sysops and the Sysop always
  140. have full @code{Mail>} access.  See @file{flipbits.man} if
  141. @pindex flipbits
  142. you need a way to set
  143. the mail access flag for all users in one swell foop.
  144.  
  145. @node Calls per day, Connect time per day, Mail messages per call, Secret Weapons
  146. @subsection Maximum number of calls per day
  147. @cindex Limits, calls per day
  148.  
  149. This parameter is called @code{#maxcalls} in @file{ctdlcnfg.sys},
  150. @vindex maxcalls
  151. and is used to limit the total number of calls any user (except
  152. Aides, Co-Sysops and the Sysop, of course) may make in a given day.  Again,
  153. setting the parameter to @samp{0} means there is no limit.
  154.  
  155. @node Connect time per day, Close calls per day, Calls per day, Secret Weapons
  156. @subsection Maximum connect time per day
  157. @cindex Limits, connect time
  158.  
  159. This parameter is called @code{#maxtime} in @file{ctdlcnfg.sys},
  160. @vindex maxtime
  161. and is used to limit the total connect time any user (except
  162. Aides, Co-Sysops and the Sysop, of course) may use up in a given day.  The
  163. value is in minutes.  Again, setting the it to @samp{0} means there
  164. is no limit.
  165.  
  166. This measure is like the others, in that it is non-intrusive---users
  167. will not be booted off the system the second they
  168. exceed their daily allotment of connect time.  Instead, they
  169. will be allowed to finish their current login session.  But
  170. if they call back the same day, they will not be permitted entry.
  171. This seems to us like a good mix of control for the Sysop vs.
  172. consideration for the users.
  173.  
  174. A related parameter that you might want to look at is
  175. @code{mincalltime}.  This value is in minutes, and specifies the
  176. minimum connect time you wish to ``charge'' a user on any call,
  177. no matter how short it is.  (For example, if you set this variable to
  178. @samp{5}, all calls of five minutes or less will be charged as five minutes.)
  179. The lowest acceptable value is @samp{1},
  180. but you can set it higher if you're concerned about users that
  181. call frequently but spend very little time connected.
  182.  
  183. @node Close calls per day, Daily download limit, Connect time per day, Secret Weapons
  184. @subsection Maximum number of close calls per day
  185. @cindex Close calls
  186. @cindex Limits, close calls
  187.  
  188. Now we get really tricky.  First of all, you say,
  189. ``What the heck is a `close call'?  I just about got hit by
  190. a truck, is that what you mean?''  Not quite.  We define a close
  191. call to be any call made by a user that occurs a certain small
  192. amount of time after the termination of his/her last call.
  193. Ruggies frequently do this, as you'll know if you examine your
  194. @file{calllog.sys} file after ruggie problems---you'll probably see
  195. lots of (usually short) calls, one after the other.  They will
  196. do this for sure if you have defined the @code{msgenter} parameter,
  197. since that value unreasonably limits the number of drivelous
  198. messages they can post during one call.
  199.  
  200. Well, there's hope.  Simply define the @file{ctdlcnfg.sys}
  201. @vindex closetime
  202. parameter @code{#closetime} to be the number of minutes separating
  203. what you think are two calls that are ``close''.  We suggest
  204. something like 10 minutes.  Next, define the parameter
  205. @code{maxclosecalls} to be the maximum number of close calls that
  206. users will be allowed on a daily basis.  We suggest a number
  207. somewhere between 3 and 5 if you're having problems, but be
  208. aware that you'll also be putting the clamps on any decent
  209. users that have bad line noise problems or call-waiting on
  210. their phone lines (they'll get disconnected frequently and
  211. probably try calling back right away).
  212.  
  213. If either of the above parameters is set to @samp{0}, there is
  214. (you got it) no limit.  Also, predictably, Aides, Co-Sysops and the Sysop
  215. are exempt from the limit.  Be aware, when setting @code{maxclosecalls},
  216. that all users start each day with this stat set to @samp{1}.  Their
  217. first call is by definition close to itself.  Make sense?
  218.  
  219. @node Daily download limit, Twit status, Close calls per day, Secret Weapons
  220. @subsection Daily download limit
  221. @cindex Download limits
  222. @cindex Limits, download
  223.  
  224. For those users that may be downloading stuff like crazy,
  225. you may want to set a limit on how much they can do in a day.
  226. Use the @file{ctdlcnfg.sys} parameter @code{#download}, which is a number
  227. @vindex download
  228. defining the maximum number of kilobytes of files downloadable
  229. by any user (except Aides, Co-Sysops and the Sysop) per day.  If the value is
  230. @samp{0}, there is, of course, no limit.
  231.  
  232. @node Twit status, Inheritance, Daily download limit, Secret Weapons
  233. @subsection Twit status
  234. @cindex Twit status
  235.  
  236. This is the ``twit-bit''; it's a flag in the user log
  237. record to tell the system that the user is, as they say,
  238. a twit.  To set it, use the @code{[T]wit toggle} command from
  239. the @code{[U]ser status} sub-menu under the Sysop menu
  240. (@pxref{User Status Commands}).
  241.  
  242. What does the twit-bit do, you ask?  The most useful function of the twit-bit
  243. is to cause all messages entered by twits to be saved not to the message base,
  244. but to the Great Bit Bucket In The Sky.  (I.e., they are thrown away the
  245. nanosecond the user hits @code{[S]ave}.)  Note that this is different
  246. from the purge feature, covered in @ref{Message purging}, where local
  247. messages from undesirables are actually saved, but then automatically deleted
  248. later.
  249.  
  250. In addition, certain Fnordadel functions will be
  251. mysteriously inoperative or different for a twit.
  252. @itemize @bullet
  253. @item
  254. A twit may not use the @code{[C]hat} command.
  255. @item
  256. He/she may not upload or download files.
  257. @item
  258. Doors are inaccessible to a twit.
  259. @item
  260. The command @samp{.RG} for reading all new
  261. messages on the system will be mapped to @code{[N]ew}.
  262. @item
  263. A twit will not be allowed to
  264. use @code{.E(nter) R(oom)}.
  265. @item
  266. As a sort of side-effect, no new
  267. users will be allowed to login to the system immediately after
  268. a twit has @code{[T]erminate}d.  (This is to stop his buddies, or new
  269. aliases with him attached.)
  270. As soon as one existing user signon has occured, new users will
  271. once again be allowed to login.  (This function assumes that
  272. you're not running your Fnordadel in validation mode.  @xref{Closed system}.)
  273. @end itemize
  274.  
  275. @node Inheritance, Message purging, Twit status, Secret Weapons
  276. @subsection Inheritance
  277. @cindex Inheritance
  278. @cindex Twit status inheritance
  279.  
  280. Another favorite trick of ruggies is to play
  281. around with the @code{.T(erminate) S(tay)} feature---that form
  282. of @code{.T(erminate)} which allows the user to stay connected
  283. and login again (presumably under a different alias).
  284.  
  285. Fnordadel makes an assumption which is pretty
  286. accurate, most of the time.  It assumes that anyone who
  287. logs in after a twit has used @samp{.TS} is also a twit, and
  288. assigns him/her twit status just as if the Sysop had
  289. manually done so.
  290.  
  291. Currently, Fnordadel allows only twit status
  292. to be inherited; the capability may be extended to
  293. include purging and whatever else may arise.
  294.  
  295. @node Message purging, Login restrictions, Inheritance, Secret Weapons
  296. @subsection Message purging
  297. @cindex Message purging
  298. @cindex Purging messages from ruggies
  299. @cindex Ruggie message purging
  300.  
  301. This is probably the goofiest yet most useful of the ruggie
  302. control features, mainly because it's the most devious.
  303. Essentially, it allows Fnordadel to automatically
  304. delete all messages from specified users, immediately
  305. upon said users' disconnection from the system.  Also, if
  306. you set the @file{ctdlcnfg.sys} parameter @code{#purgenet} to @samp{1}, all
  307. @vindex purgenet
  308. incoming net messages (except in @code{Mail>}) from specified
  309. users @emph{or net nodes} will be purged.
  310.  
  311. Place a file called @file{purge.sys} into your
  312. @code{#sysdir}.  It should contain a list of user or node names, one
  313. @vindex sysdir
  314. per line, to whom the purge will apply.  Case is irrelevant,
  315. since all name comparisons during searches ignore case.  Now invoke
  316. @pindex +purge (citadel)
  317. @code{citadel} with @samp{+purge} on the command line.
  318.  
  319. When Fnordadel is brought up it reads the
  320. contents of @file{purge.sys} into memory.  When a user
  321. @code{[T]erminate}s, or a network session finishes, the list is checked.
  322. New messages from the desired users and nodes are deleted, except for those
  323. posted in the @code{Mail>} room (this gives them a chance to talk to you
  324. and redeem themselves).
  325. The deleted messages will appear in @code{Aide>} in the case of
  326. locally-entered messages; they will be marked by @samp{The following
  327. message deleted from @var{xyz}> by Citadel}.
  328.  
  329. You can modify this behavior by setting the @file{ctdlcnfg.sys} variable
  330. @vindex vaporize
  331. @code{#vaporize} to @samp{1}.  If you do this, your system will actually
  332. ``roll back'' all messages (including those in @code{Mail>}) entered by the
  333. ruggie, reclaiming the space
  334. they took up in the message base.  This action is logged in @code{Aide>}.
  335. Note that if the user caused any @code{Aide>} messages to be generated during
  336. his/her stay, they will be lost along will all the other user messages when
  337. the vaporization occurs.  This fact is logged in @code{Aide>} also, but the
  338. lost @code{Aide>} messages themselves are not recoverable,
  339. unless you are archiving the room.  @xref{Sysop room-editing commands}.
  340.  
  341. Normal purging takes a little time,
  342. but vaporize mode takes even longer.  Use with caution (if it screws up,
  343. it will probably toast your message base), and only if you are being
  344. plagued with so many ruggie postings that they're causing serious space
  345. wastage in your message base.  Better yet, if you're having this much
  346. trouble, consider moving and changing your identity.
  347.  
  348. The purge list can be maintained by using a text
  349. editor on the @file{purge.sys} file when the @sc{bbs} is down; and by
  350. the use of the @code{[P]urge} sub-menu under the Sysop menu when
  351. when the @sc{bbs} is up.  @xref{Purge and Westwict menus}, for
  352. details on how the menu works.
  353.  
  354. The purge feature works fairly well; however, it
  355. does nothing to make your message base impervious to
  356. having loads of crap dumped in it in the first place.  If you
  357. want to stop the messages from being entered while still keeping
  358. your system up, you have only
  359. two choices:  use the twit status bit a lot (@pxref{Twit status}) or
  360. go to validation mode (@pxref{Closed system}).
  361.  
  362. Note also that Fnordadel makes no check to see
  363. that names in @file{purge.sys} are those of existing users on
  364. your system; this allows you to add the names of ruggies
  365. who may have been terrorising other boards but not yours.
  366. You can prepare in advance for their arrival.  Also, once
  367. a ruggie has hit your system, he may leave it alone long
  368. enough for his user account to scroll out of your user file.
  369. If he ever signs back on with the same name, however, he
  370. will still be purged immediately.
  371.  
  372. Finally, the purge function can be applied to incoming net
  373. traffic as well as locally-entered messages.  This can be effective
  374. in eliminating dreck from problem net nodes to which you don't connect
  375. directly.  Even better, net messages eliminated by the purger never
  376. make it into your message base, so they cause no space wastage.  They are
  377. either permanently lost, or saved each in its own offline file for you to
  378. manually process.  See
  379. @vindex purgenet
  380. @vindex keepdiscards
  381. @code{#purgenet} and @code{#keepdiscards} in
  382. @ref{Optional parameters, , Optional Networking Parameters},
  383. and the @code{[D]iscarded messages} menu in @ref{The Net Menu}.
  384.  
  385. @node Login restrictions, Purge and Westwict menus, Message purging, Secret Weapons
  386. @subsection Login restrictions
  387. @cindex Login restrictions
  388. @cindex Restrictions on logins
  389.  
  390. This doesn't really qualify as an anti-ruggie
  391. feature, in the truest sense, but we'll put it here
  392. anyway because it's similar.
  393.  
  394. Put a file called @file{restrict.sys} in your @code{#sysdir}
  395. @vindex sysdir
  396. containing a list of user names, one per line.  When
  397. Fnordadel is brought up it reads the list into memory.
  398. @pindex +restrict (citadel)
  399. If you specify @samp{+restrict} on the @code{citadel} command
  400. line, or if you manually turn on restrictions using the
  401. @code{[W]estwict} command in the Sysop menu, then Fnordadel will
  402. restrict logins to only those users named in @file{restrict.sys}.
  403. All other attempted logins, whether by new users or by
  404. existing users, will be refused---the system will spit
  405. out the @file{restrict.blb} file, located in your @code{#helpdir},
  406. @vindex helpdir
  407. or a simple ``sorry, the system is closed'' message if it
  408. can't find @file{restrict.blb}.
  409.  
  410. In the ruggie-control sense, login restrictions
  411. could be used to restrict access to your system to only
  412. those users that you know are ``safe'', without having to
  413. actually process their applications and create their
  414. accounts yourself (as required by ``validation'' mode).  As with purging,
  415. it has the advantage that you may specify the names of
  416. users who have never logged in, so you can ``reserve a
  417. spot'' for them, as it were.  (Of course, this is itself a security
  418. hole, because a ruggie can try to guess who you've got
  419. in your restrict list@dots{} but let's not get too paranoid.)
  420.  
  421. Login restrictions were originally put in during
  422. a round of hacking on the software in which we were
  423. constantly interrupted during testing by users calling
  424. the board; we wanted to reserve the board for ourselves,
  425. without disabling it.  Another possible use for login
  426. restrictions is to designate a certain time period for
  427. ``members only'' or some such; simply set up a pair of
  428. events which exit to a command shell, where a script file
  429. copies a new @file{restrict.blb} into place, and then reruns
  430. @code{citadel}.  The first event set the restriction to
  431. ``members only'', and the second event resets things to open
  432. access.  The possibilities are endless!
  433.  
  434. @node Purge and Westwict menus, Network security, Login restrictions, Secret Weapons
  435. @subsection Purge and Westwict menus
  436.  
  437. The purge and restrict lists may be manipulated using
  438. these two menus.  Their operation is identical.  The commands are:
  439. @cindex Purge menu
  440. @cindex Restrict menu
  441. @cindex Westwict menu
  442. @example
  443. [A]dd name to list
  444. [D]elete name from list
  445. [S]witch function on/off
  446. [V]iew list in RAM
  447. [W]rite list to disk
  448. e[X]it menu
  449. @end example
  450.  
  451. @table @code
  452. @item [A]dd name to list
  453. This allows you to add another name to
  454. the list.  No check is made to see whether
  455. the name is that of a currently-existing user;
  456. this is deliberate.  (See below).
  457.  
  458. @item [D]elete name from list
  459. Use this to remove someone from the list.
  460.  
  461. @item [S]witch function on/off
  462. This toggles purging/restrictions on or off.
  463. If it is off, the list will still be kept in memory, so
  464. the feature can be turned on again at any time.
  465.  
  466. @item [V]iew list in RAM
  467. This displays a list of the names currently in
  468. the list stored in memory.
  469.  
  470. @item [W]rite list to disk
  471. After you've made some changes to the
  472. list, you'll probably want to make them permanent.  Use
  473. this command to write the contents of the list in @sc{ram} to
  474. disk (as the file @file{purge.sys} or @file{restrict.sys}.)  The old
  475. file, if it exists, will be overwritten.
  476.  
  477. @item e[X]it menu
  478. Exit back to the main Sysop menu.
  479. @end table
  480.  
  481. @node Network security, Closed system, Purge and Westwict menus, Secret Weapons
  482. @subsection Network security
  483. @cindex Security, network
  484. @cindex Network security
  485.  
  486. If you suspect another Citadel net node is actively
  487. causing you grief (or if you just want to play it safe/paranoid), there
  488. are a few things you can do to protect your system.  The first
  489. is to set up net passwords with the systems
  490. you normally net with, assuming you trust them (see @code{[P]asswords} in
  491. @ref{Editing Nodes}.)  There have been
  492. incidents in the past where unscrupulous Sysops set up systems
  493. that looked exactly like other systems, and then dialed in to
  494. places in order to intercept shared rooms and @code{Mail>}, and generally
  495. cause chaos.  Net passwords were put in to prevent this behavior.
  496.  
  497. Two other things you can do are to set the @code{anonnetmail}
  498. and/or @code{#anonfilexfer} parameters in @file{ctdlcnfg.sys}.  These
  499. @vindex anonfilexfer
  500. parameters, if set to @samp{0}, will make your system reject attempted
  501. incoming net mail and file transfer requests, respectively, if the
  502. sending node is not in your net list.  This prevents rogue
  503. systems from scrolling your @code{Mail>} room and message base, or
  504. filling up all available disk storage.  It would also prevent
  505. the ``junk mail'' phenomenon, which is already a problem with fax
  506. machines.  Heaven help us all if it hits @sc{bbs} networks.
  507.  
  508. @node Closed system, , Network security, Secret Weapons
  509. @subsection Closed system
  510. @cindex Closing your system
  511.  
  512. So, let's say that everything else has failed.
  513. The ruggies have found out about all of the above
  514. features, and have found workarounds for all of them.  Or
  515. they haven't, but have enough time and perseverence to keep
  516. plugging away with every automated macro and trick they
  517. can come up with.  What do you do now?
  518.  
  519. Much as we hate to suggest it, the best option is
  520. probably to close your system.  To do so, simply change
  521. the value of the @file{ctdlcnfg.sys} variable @code{#loginok} to {0}.
  522. @vindex loginok
  523. This will prevent new users from creating their own
  524. accounts; they will only be able to leave mail to the
  525. Sysop to request that you create an account for them.  You
  526. will then have total control over who gets access to your
  527. system; unfortunately, you'll also have opened up a whole
  528. new can of problem worms, such as ruggies who request bogus
  529. accounts by just randomly pulling names from the phone book.
  530. At this point, you should be talking to your
  531. phone company about getting an unlisted phone number, and
  532. perhaps a line trace.  They might be willing to help you out.
  533.  
  534. In conjunction with this step, you may also need to define the
  535. @file{ctdlcnfg.sys} parameter called
  536. @vindex anonmailmax
  537. @code{#anonmailmax}, which controls the size of mail messages
  538. enterable by users that aren't logged in.  This will help prevent
  539. ruggies who can no longer log in from causing you problems in
  540. Mail>, the last room available to them.
  541.  
  542. @node Ruggie Hints and Notes, , Secret Weapons, Anti-Ruggie Measures
  543. @section Other Hints and Notes
  544.  
  545. @itemize @bullet
  546. @item
  547. When using the purge feature on incoming net traffic, make sure
  548. that none of the user names in your purge list is the same as
  549. any net node you get messages from.  The results are obvious,
  550. and highly annoying.
  551.  
  552. Also, the net purge currently is set to be very literal about
  553. matching user names on other nodes---no substring matching
  554. is done.  This prevents messages from @samp{Dr. Zamboni} from being
  555. blown away along with those from @samp{Dr. Zam}.  However, it is
  556. marginally possible (due to all the strange and wonderful
  557. variants of Citadel out there) that messages from @samp{Dr. Zam}
  558. would not be purged due to some software somewhere sticking
  559. extra crap in the user name field, e.g. @samp{Dr. Zam @@ Foobar}.
  560. This isn't supposed to happen, but it might.  We'll figure
  561. something out to get around it when/if it becomes a problem.
  562.  
  563. @item
  564. When users exceed any of the limit values you have defined,
  565. the system keeps track of the excess amount over and above
  566. the maximums, and rolls that amount forward to future days.
  567. This is done like so:  When the user calls back any day after
  568. today (could be many days from now), the system subtracts from
  569. his/her accumulated stats the maximum values you set.  It then
  570. checks to see if the user should be allowed access; if not,
  571. the new lower limit values are saved and the user is logged off.
  572. Thus users who abuse your system (especially in the total
  573. connect time area) could penalize themselves for several days.
  574. @strong{Note:}  The system does not care if the user calls back tomorrow
  575. or four weeks from now.  No extra deductions from the user's
  576. accumulated stats are made if he/she waits for several days or
  577. weeks to call back.
  578.  
  579. @strong{Also note:}  If a user makes a call and is prevented access due
  580. to one or another of your defined limits, the call is counted
  581. and recorded against their time and number of calls limits,
  582. even though the user was not allowed onto the system.
  583.  
  584. @strong{Final note:}  If you don't like this behavior of rolling overages
  585. forward, you can get rid of it using the @file{ctdlcnfg.sys} parameter
  586. @vindex autozerolimit
  587. @code{#autozerolimit}.  If set to @samp{1}, this flag tells the system to
  588. graciously wipe out all the user's limit values and start from
  589. scratch, rather than bringing forward any extra amounts.
  590.  
  591. @item
  592. If you need to manually reset a user's limit statistics, for
  593. some reason, you can do so using the @code{[R]eset} daily limits
  594. command of the user status menu.  You can look at a user's
  595. current stats using the @code{[V]iew user status} command in the
  596. same menu.  @xref{User Status Commands}.
  597.  
  598. @item
  599. The system pauses for about 20 seconds on bad passwords, to
  600. discourage password guessing.  After a certain number of bad
  601. login attempts (currently 3), the system will disconnect the
  602. caller.
  603.  
  604. @item
  605. If you're having ruggie problems and haven't got as far
  606. as closing your system yet, you'll want to make sure that
  607. you aren't being too careless with the new users'
  608. privileges.  The @file{ctdlcnfg.sys} variable @code{#allnet} is a good
  609. @vindex allnet
  610. one to check; if it's set to @samp{1}, all new users are given
  611. net privs (and can therefore enter net messages in shared
  612. rooms, whether the room is autonet or not).  If you net
  613. long-distance rooms (or even just local ones), it would
  614. be both a profound annoyance for all the other Sysops,
  615. and a possibly expensive proposition in the case of LD
  616. netting, to send out a flood of messages from a ruggie
  617. who was allowed to post net messages in a shared room.
  618. Be careful.  (@xref{Networking}.)
  619. @end itemize
  620.